package com.lpwa.system.mapper;
import com.lpwa.system.domain.Tag;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 标签 数据层
 * 
 * @author tanmu
 * @date 2019-06-03
 */
public interface LableMapper 
{
	/**
     * 查询标签信息
     * 
     * @param lableId 标签ID
     * @return 标签信息
     */
	public Tag selectLableById(String lableId);
	
	/**
     * 查询标签列表
     * 
     * @param lable 标签信息
     * @return 标签集合
     */
	public List<Tag> selectLableList(Tag lable);
	
	/**
     * 新增标签
     * 
     * @param lable 标签信息
     * @return 结果
     */
	public int insertLable(Tag lable);
	
	/**
     * 修改标签
     * 
     * @param lable 标签信息
     * @return 结果
     */
	public int updateLable(Tag lable);
	
	/**
     * 删除标签
     * 
     * @param lableId 标签ID
     * @return 结果
     */
	public int deleteLableById(String lableId);
	
	/**
     * 批量删除标签
     * 
     * @param lableIds 需要删除的数据ID
     * @return 结果
     */
	public int deleteLableByIds(String[] lableIds);
	/**
	 * 校验Id是否唯一
	 *
	 * @param lableId
	 * @return 结果
	 */
	public int checkLableIdUnique(String lableId);
	/**
	 * 创建分表
	 *
	 * @param tableName
	 * @return 结果
	 */
	public void createNewTagDataTable(@Param("tableName") String tableName);
	/**
	 * 使用information_schema检查表是否存在
	 * @param tableSchema
	 * @param tableName
	 * @return
	 */
	Integer checkTableExistsWithSchema(String tableSchema,String tableName);

	/**
	 * 使用show tables检查表是否存在
	 * @param tableName
	 * @return
	 */
	Map<String, String> checkTableExistsWithShow(String tableName);

	public List<String> selectTagIds();

	public List<Tag> selectAllocatedList(Tag tag);
	public List<Tag> selectUnallocatedList(Tag tag);


}